perm filename FLOW.MJW[UP,DOC] blob
sn#055751 filedate 1973-07-30 generic text, type T, neo UTF8
COMMENT ⊗ VALID 00002 PAGES
RECORD PAGE DESCRIPTION
00001 00001
00002 00002 There is a flow-chart drawing program. It is essentially a file
00009 ENDMK
⊗;
There is a flow-chart drawing program. It is essentially a file
editor. It reads a text file with a name of the form FLx where x is
any digit, and writes the updated version on a new version of the
file (with the same name). The file must be there to start with, so
to get started, you must create a null file. This is done most easily
with SOS.
The program is called FLOW and exists as a dump on [1,PMP].
When you start it it types out "TYPE FILE NUMBER =", at which point
you type the digit (no CR is needed). The program reads the file and
displays the first 20 lines on the screen. You are now basically
looking at a 120 by 20 character array. You may move the cursor
around in that array, and make changes as you wish. Since the screen
is not 120 characters wide, only the first part of each line is
shown; there are commands for moving the window left and right. You
can also move the text up one line at a time, but the top line get
written out and cannot be retrieved; a new line (from the file, if
any lines left) is inserted at the bottom. DO NOT USE TAB as tabs are
not expanded by the display program.
A list of the commands follows:
ε means one or more control bits
ε( MOVE CURSOR LEFT (1,2 OR 4) AND REMEMBER CR POSITION (SEE CR)
ε) MOVE CURSOR RIGHT (1,2 OR 4) AND REMEMBER CR POSITION (SEE CR)
ε/ MOVE CURSOR UP (1,2 OR 4) AND REMEMBER CR POSITION (SEE CR)
ε\ MOVE CURSOR DOWN (1,2 OR 4) AND REMEMBER CR POSITION (SEE CR)
<BS> MOVE CURSOR LEFT AND DO NOT REMEMBER CR POSITION
<CR> -- MOVE CURSOR DOWN ONE LINE AND LEFT TO POSITION SET BY
<cntrl> ← MOVE TEXT LEFT 8 CHR. POSITIONS (WINDOWING)
<cntrl> → MOVE TEXT RIGHT 8 CHR. POSITIONS (WINDOWING)
<cntrl> ↑ MOVE TEXT UP (PUT TOP LINE OUT ON FILE)
<cntrl> P REMEMBER CURRENT CURSOR POSITION AS UPPER LEFT CORNER OF A BLOCK
<meta> P REMEMBER CURRENT CURSOR POSITION AS LOWER RIGHT CORNER OF A BLOCK
<meta> M GO INTO MOVE MODE MOVING THE CURREN REMEMBERED BLOCK (SEE MOVING)
<cntrl> M GO INTO MOVE MODE MOVING THE BOX YOU ARE INSIDE (SEE MOVING)
<any chr> Insert the character at the current cursor position
and step cursor one place right, except if the
chr. typed was | (vert. bar) in which case
cursor is stepped one place down. <CR> and <LF>
are not inserted. This does not move any text
around, it merely changes the chr. at the current
position to the one typed.
<meta> <space>INSERT A SPACE AT CURRENT POSITION, MOVING TEXT ON THAT LINE TO
<both> <space>DELETE THE CHR. AT THE CURRENT POSITION, MOVING TEXT ON THAT LINE
<cntrl> I INSERT A BLANK LINE AT CURRENT LINE POSITION. MOVE THOSE ABOVE UP
<cntrl> D DELETE CURRENT LINE. MOVE THOSE BELOW UP.
<cntrl> E END THE EDIT. REST OF FILE IS READ AND WRITTEN AND FILE IS CLOSED
UP TO THIS POINT, SAYING CALL WILL LEAVE THE ORRIGINAL
FILE UNCHANGED.
MOVING:
A block to be moved is always square. It may be delineated by the P
commands, or it may be a box which you are inside. The box must be
made of | and _ and be of the following form. Note carefully the
corners. No variation of form is allowed.
____________________
| this is a box |
| it may have text |
____________________
When you are in move mode, only 5 commands are accepted. They are the
moving commands, and space. The moving commands {i.e. "()/\" } move
the block one position in the indicated direction, regardless of
control bits. Space gets you out of move mode.
THE CURSOR IS THE _ CHARACTER, IT CAN BE HARD TO FIND.
Typing <CNTRL> <DIGIT> (for as many digits as you wish)
multiplies the next character typed (other than control digit) by
that many. So <CNTRL> 2 <CNTRL> 4 <CNTRL> ↑ would move the text up 24
lines.